package com.algorithmicTest1;

public class BubbleTest {
    public static void main(String[] args) {
        //实现冒泡排序：相邻两个元素两两比较：
        //大的放有右边，小的放左边，这是从小到大排序
        //同理：小的放左边，大的放右边，这是从大到小排序
        int[]arr = {3,4,2,1,5};

        //有5个数据先看
        //第一轮循环：
        for (int i = 0; i< arr.length-1;i++){
            //0 1 2 3 4
            //这里有5个索引
            //而我们是两两比较，那比较之后，4索引之后没有能比较的，会发生数组越界所以
            //应该length - 1 ： 0 1 2 3   这里3索引之后还有4可以比较，所以不会发生数组越界
            if(arr[i] > arr[i+1]){
                int temp = arr[i];
                arr[i] = arr[i+1];
                arr[i+1] = temp;
            }
        }
        bianLi(arr);



        //外循环：几轮
        for (int i = 0; i< arr.length-1;i++){//0 1 2 3
            //这一轮中我要干的事情
            for (int j = 0; j < arr.length -1 - i; j++) {
                if(arr[j] > arr[j+1]){
                    int temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
        }
        bianLi(arr);






    }
    //将遍历抽成一个方法：
    public static  void bianLi(int[]arr){
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }
        System.out.println();
    }

}
